package com.haiertvbic.tvwa.protocol;

import java.nio.ByteBuffer;

/**
 * 组合请求消息包头数据类
 */
public class PackageOperation {

	/**
	 * 获取喜爱频道的包体信息
	 * 
	 * @param type
	 *            查询类型 0：昨天的收视率 1：上周的收视率 2：上月的收视率 4位
	 * @param count
	 *            查询频道的数量 4位
	 * @param reserve
	 *            保留字段 ，可以为空 4位
	 * @return 包体信息
	 */
	public static ByteBuffer getTvChannelsFromCae(int type, int count,
			String reserve) {
		// 声明字节流存储包体信息
		ByteBuffer bodyBuffer = ByteBuffer.allocate(12);

		// 将type放入流
		byte[] typeByte = new byte[4];
		typeByte = ConnectManager.intToByte(type);
		bodyBuffer.put(typeByte);

		// 传入查询数量count
		byte[] countByte = new byte[4];
		countByte = ConnectManager.intToByte(count);
		bodyBuffer.put(countByte);

		// 将保留位放入流
		byte[] reserveByte = new byte[4];
		bodyBuffer.put(reserveByte);

		return bodyBuffer;
	}

	/**
	 * 
	 * @return byteMsg 请求获取地域消息的包体数据<br>
	 */
	public static ByteBuffer getDeviceLocalInfo() {
		// 声明字节流存储包体信息
		ByteBuffer byteMsg = ByteBuffer.allocate(32);
		return byteMsg;
	}
	
	/**
     *  组合换台的包体数据
     * @param deviceType 设备类型<br>
						PAD/phone 等
						Phone= 1
						PAD = 2
						其他 = 3
     * @param channelId 用户频道ID<br>
     * @param changeChannelNum 频道换台号<br>
     * @return byteMsg 请求消息包<br>
     */
    public static ByteBuffer getChangeChannelData(int devicesType,int channelId,int changeChannelNum){
    	ByteBuffer byteMsg = ByteBuffer.allocate(8);
    	//设备类型
        byte [] byteType=new byte[4];
        byteType=ConnectManager.intToByte(devicesType);
        byteMsg.put(byteType);
        //频道ID
        byte [] temp2=new byte[2];
        temp2 = ConnectManager.shortToByte((short)channelId);
        byteMsg.put(temp2);
        //频道号
        temp2 = ConnectManager.shortToByte((short)changeChannelNum);
        byteMsg.put(temp2);
        return byteMsg;
    }
}
